# 图书分发路由配置
from fastapi import APIRouter
from fastapi import APIRouter, File, UploadFile, HTTPException
from typing import List
import os
from pathlib import Path
from llm import chain1 ,raglang
openapi = APIRouter() # 创建路由
 
@openapi.get("/get")
async def get_test():
    text_contents = '''自2009年创立之初，阿里云就提出“云计算，
        让计算成为公共服务”，并坚持通过云的弹性和自服务能力支持企业敏捷创新。
        自2016年起，阿里云持续保持中国第一、亚太第一、全球第三的市场地位。
        当前阿里云服务超400万客户，包括60%A股上市公司。'''
    ret=chain1.ask(text_contents)
    return {"methods": ret}

@openapi.get("/get3")
async def get_test3(name: str, age: int):
     print(name, age)
     return {"methods": "get方法"}
 
@openapi.get("/ask")
async def ask( ):
    text_contents = '''自2009年创立之初，阿里云就提出“云计算，
        让计算成为公共服务”，并坚持通过云的弹性和自服务能力支持企业敏捷创新。
        自2016年起，阿里云持续保持中国第一、亚太第一、全球第三的市场地位。
        当前阿里云服务超400万客户，包括60%A股上市公司。'''
    ret=chain1.ask(text_contents)
    return {"answer": ret}

@openapi.get("/ask3")
async def ask3( ):
     
    ret=raglang.test()
    return {"answer": ret}

@openapi.get("/ask4")
async def ask4( ):
     
    
    return {"answer": "ok"} 


@openapi.get("/ask5/")
async def ask5( ):
     
    print("aks5....")
    return {"answer": "okkk"} 

@openapi.post("/post")
async def post_test( ):
 
    return {"answer": "post方法"}
 

@openapi.post("/uploads/")
async def upload_multiple_files(files: List[UploadFile] = File(...)):
    """上传多个文件"""
    results = []
    print("ok.......")
    for file in files:
        try:
            print("file.filename:",file.filename)
            file_path = f"d:/ai/{file.filename}";
            print("file_path:",file_path)
            with open(file_path, "wb") as f:
                contents = await file.read()
                print("contents:",contents)
                f.write(contents)
            
            results.append({
                "filename": file.filename,
                "content_type": file.content_type,
                "size": len(contents),
                "saved_path": str(file_path),
                "status": "success"
            })
        except Exception as e:
            print("error:",e)
            results.append({
                "filename": file.filename,
                "error": str(e),
                "status": "failed"
            })
        finally:
            await file.close()
    
    return results
